The present invention relates to decoders for processing image data which has been compressed according to a format, MPEG-2, specified by the moving pictures experts group (MPEG) and in particular to a decoder in which different time intervals may be assigned to the decoding of respective segments of the MPEG-2 bit-stream.
Video signal compression performed under the MPEG-2 standard is inherently variable rate. Video data is compressed based on the spatial frequency content of either a sequence of images or on differences in spatial frequency content among the individual images in the sequence.
The syntax for the MPEG-2 standard is set forth in International Standard 13818-2 Recommendation ITU-T H.262 entitled "Generic Coding of Moving Pictures and Associated Audio Information: Video" and available from ISO/IEC, Geneva, Switzerland, which is incorporated herein by reference for its teaching of the MPEG-2 video coding standard. This standard defines several layers of data records which are used to convey both audio and video data. For the sake of simplicity, the decoding of the audio data is not described herein. Encoded data which describes a particular video sequence is represented in several nested layers, the Sequence layer, the Group of Pictures layer, the Picture layer, the Slice layer and the Macroblock layer. Each layer record except for the Macroblock record begins with a start code that identifies the layer. The record includes header data and payload data.
The Sequence layer defines parameters such as picture size and aspect ratio which affect the decoding of a relatively large number of successive images. The Group of Pictures layer defines parameters for a smaller number of images and the Picture layer defines parameters for a single image. Inside of an image, a Slice record defines parameters for a horizontal segment of the image which is composed of multiple Macroblocks.
Thus, the actual image data is in the Macroblock layer. In a typical MPEG-2 bit-stream, there are many more Macroblock and Slice records than Picture, Group of Picture and Sequence records. Accordingly, the headers for the Sequence records, Group of Picture records and Picture records may be decoded using algorithms implemented in software which run on a conventional microprocessor. Slice records and Macroblock records, however, occur more frequently in the bit-stream and are typically decoded using special purpose hardware.
In a typical decoder, the circuitry used to decode the headers of the Slice and Macroblock records is constrained by the circuitry used to decode the payload of the Macroblock records. If any change is made in the Macroblock decoding process, a corresponding change is typically made to the circuitry which processes the Slice and Macroblock headers. If, for example, an existing Macroblock decoder is implemented using a semiconductor process technology having a smaller geometry (e.g. translated from a one micron process to a half-micron process), it may be necessary to redesign the hardware that decodes the Slice and Macroblock headers so that the complete bit-stream is processed properly.